//https://www.cnblogs.com/shikaka/p/10576531.html

//Map 中存储的是 key-value 形式的键值对, 其中的 key 和 value 可以是任何类型的, 即对象也可以作为 key . 这比用对象来模拟的方式就灵活了很多

// Map 可用的 方法
// set(key, value): 向其中加入一个键值对
// get(key): 若不存在 key 则返回 undefined   ，get键值对只的键值（后面那个数）
// has(key):返回布尔值
// delete(key): 删除成功则返回 true, 若key不存在或者删除失败会返回 false
// clear(): 将全部元素清除

// 创建一个空的 Map
let map  = new Map();

// 用数组来创建一个 非空的 Map

let array = [ // 定义一个二维数组,  数组中的每子都有两个元素
    ['key1' ,  'value 1'],   // key 是 字符串 "key1", value 是字符串 "value 1"
    [{} ,  10086] ,          // key 是个对象, value 是数值 10086
    [ 5,  {} ]              // key 是个数值类型, value 是对象
];

map = new Map(array);

var a = map.set('key1',2)  //set一个键名相同的键值对，'key1'里的值就被修改了
console.log(a);
